// 导入路由对象
const express = require("express")
const router = express.Router()//创建路由
// 导入控制器类
const articleComment = require("../controllers/articleComController")
const articleCommentObj = new articleComment()
const SensitiveFilter = require('sensitive-word-filter')

// 发布文章评论
// 方式：POST
// 参数： user_id,article_id,comment, username imgUrl
// 示例： http://localhost:3001/api/articleComment/publish
// 响应数据格式: json格式
router.post('/publish', async (req, res) => {
    let { user_id, article_id, comment, username, imgUrl = '' } = req.body
    if (user_id == '' || article_id == '' || comment == '' || username == '') {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        const filteredWishText = SensitiveFilter.filter(comment);
        if (filteredWishText != comment) {
            res.send({
                code: -1,
                msg: "请勿发布敏感信息"
            })
        } else {
            await articleCommentObj.publish(user_id, article_id, comment, username, imgUrl)
                .then(
                    result => {
                        res.send(result)
                    },
                    err => {
                        res.send(err)
                    }
                )
        }

    }
})


// 修改文章评论
// 方式：POST
// 示例： http://localhost:3001/api/articleComment/modify
// 参数： comment,id
// 响应数据格式: json格式
router.post('/modify', async (req, res) => {
    let { comment, id } = req.body
    if (comment == undefined || id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.modify(comment, id)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})


// 获取文章评论列表
// 方式：POST
// 参数： 无
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/list
router.post('/list', async (req, res) => {
    await articleCommentObj.list()
        .then(
            result => {
                res.send(result)
            },
            err => {
                res.send(err)
            }
        )
})


// 获取指定用户的文章评论列表
// 方式：POST
// 参数： user_id,page_num,page_size
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/listByUser
router.post('/listByUser', async (req, res) => {
    let { user_id, page_num, page_size } = req.body
    if (user_id == undefined || page_num == undefined || page_size == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.listByUser(user_id, page_num, page_size)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})


// 方式：POST
// 参数： article_id
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/listByArticle

// 获取指定文章评论列表
router.post('/listByArticle', async (req, res) => {
    let { article_id, page_num, page_size } = req.body;
    if (article_id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.listByArticle(article_id, page_num, page_size)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})

// 删除文章评论
// 方式：POST
// 参数： id
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/remove
router.post('/remove', async (req, res) => {
    let { id } = req.body
    if (id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.remove(id)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})


// 搜索文章评论列表
// 方式：POST
// 参数： keyword
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/search
router.post('/search', async (req, res) => {
    let { keyword } = req.body
    if (keyword == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.search(keyword)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})


//获取分页文章评论列表
// 方式：POST
// 参数： page_num, page_size
// 响应数据格式: json格式
// 示例： http://localhost:3001/api/articleComment/items
router.post('/items', async (req, res) => {
    let { page_num, page_size } = req.body
    if (page_num == undefined || page_size == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await articleCommentObj.items(page_num, page_size)
            .then(
                result => {
                    res.send(result)
                },
                err => {
                    res.send(err)
                }
            )
    }
})

module.exports = router